package cc.rengu.oltp.service.common.dao;

import cc.rengu.oltp.service.common.entity.DstChannelInfo;

import java.util.List;
import java.util.Set;

/**
 * 支付通道信息表操作接口
 * Created by 王成 on 2020/2/10
 */
public interface DstChannelInfoMapper {
    /**
     * 登记支付通道信息
     *
     * @param dstChannelInfo 支付通道信息
     * @return 0-成功，其它-失败
     * @throws Exception 异常
     */
    int insertDstChannelInfo(DstChannelInfo dstChannelInfo) throws Exception;

    /**
     * 更新支付通道信息
     *
     * @param dstChannelInfo 支付通道信息
     * @return 0-成功，其它-失败
     * @throws Exception 异常
     */
    int updateDstChannelInfoByPrimaryKey(DstChannelInfo dstChannelInfo) throws Exception;

    /**
     * 根据主键查询支付通道信息
     *
     * @param instId       多法人标识
     * @param dstChannelId 支付通道标识
     * @return 支付通道信息
     * @throws Exception 异常
     */
    DstChannelInfo selectDstChannelInfoByPrimaryKey(String instId, String dstChannelId) throws Exception;

    /**
     * 根据多法人信息查询支付通道信息
     *
     * @param instId 多法人标识
     * @return 支付通道信息
     * @throws Exception 异常
     */
    List<DstChannelInfo> selectDstChannelInfoByInstId(String instId) throws Exception;

    /**
     * 加载所有支付通道信息
     *
     * @param dbPoolCashNode     数据源缓存节点名称
     * @param dstChannelInfoList 支付通道信息
     * @throws Exception 异常
     */
    void loadAllDstChannelInfo(Set<String> dbPoolCashNode, List<DstChannelInfo> dstChannelInfoList) throws Exception;
}
